home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / cnews004.zip / FF.ZIP / FF.DOC < prev    next >
Text File  |  1987-07-02  |  8KB  |  177 lines

  1. FF.EXE
  2.  
  3. Utility for use with MS/DOS or PC/DOS on IBM PC/XT/AT and compatibles.
  4.  
  5. Author: Bill Mayne
  6.         9707 Lawndale Dr.
  7.         Silver Spring, MD 20901
  8.         (301) 588-2308 (home: reasonable hours)
  9.         (301) 899-4845 (answering machine: 24 hours)
  10.  
  11. Copyright 1987.
  12.  
  13. Changes: June 30, 1987 (first release of source code):
  14.    (1) Allow options to entered before or after pathname.
  15.    (2) Accept option for filesize range selection.
  16.    (3) Default path changed to root directory.
  17.    (4) If no filename is given default set to all files in the
  18.        current directory and its descendents (".\*.*").
  19.    (5) Accept options to specify a range of date/time stamps, so only
  20.        files with dates in the given range will be selected. Default
  21.        beginning would be earliest possible date and ending the maximum
  22.        possible date and time. DOS only supports dates Jan. 1, 1980 or
  23.        later.
  24.  
  25. Permission is granted to the public to copy and use for non-commercial
  26. purposes.  No compensation is requested, provided the program is not
  27. sold for profit.  Registration is not required, but comments and
  28. suggestions for improvements are welcome.  Anyone who modifies the
  29. source code is asked to contact the author and, pending approval of the
  30. changes, to include the old code and comments on the differences with
  31. any copies distributed to others.
  32.  
  33. Purpose: Find files on a disk where filename and extent match a given
  34. value, with wildcards allowed.  If a directory is specified, the search
  35. is limited to the subtree beginning with that directory.  Displays
  36. directory, filename, extent, size, date, time and attributes.  Selection
  37. may be on the basis of attributes and file size as well as file names.
  38. Output is to the console, but may be redirected or piped as usual in
  39. DOS.
  40.  
  41. Syntax: FF [/options] [drive:][path\]filename[.ext]
  42.     or: FF [drive:][path\]filename[.ext] [/options]
  43.  
  44. If only drive is given, with no directory part, the root directory on
  45. that drive will be used.  (Not the current directory on the specified
  46. drive, as with some DOS commands.)  If no file or path name is given,
  47. the default is all files in the current directory and its descendents
  48. (".\*.*").
  49.  
  50. Default options would be to traverse the entire subtree beginning with
  51. the root or specified directory and to display only files which are not
  52. hidden or system files.  The display would include the path to each file
  53. along with the filename and extent.
  54.  
  55. Options:
  56.  
  57. /Smin:max - specifies range of file sizes to be selected, min thru max,
  58.     inclusive. Max must be an unsigned decimal integer and have no
  59.     leading blanks. Both min and max are optional. If max is omitted
  60.     the separating colon should also be omitted. Default min is 0 and
  61.     max is the largest long integer value.
  62. /Yfrom:to - specifies date/time range to select files. "from" and "to"
  63.     are in the form "YYMMDDhhmm". The range is inclusive, and the
  64.     defaults are the minimum and maximum possible values. Each is
  65.     optional, but if only "to" is given, the colon is required as a
  66.     place holder. You can also specify only most significant part of
  67.     either, e.g. omit the time if only the date matters, or omit
  68.     everything after year if only the year matters. "/y8605:86" says
  69.     to find files with dates from May thru December 1986.
  70. /n - where n is a positive decimal integer (without sign) limits the
  71.      depth of the search. 1=root or specified directory only,
  72.      2=root or specified directory plus first level of sub
  73.      directories, etc. Default is the entire subtree. Subtrees are
  74.      searched by recursion, so it is possible to run out of stack
  75.      space if there is a very long path. The maximum length of a
  76.      pathname plus the filename and extent is 127. The program has been
  77.      tested with 16 levels of directories without running out of stack
  78.      space.
  79.  
  80. /D - display each directory containing matched files on a line by
  81.      itself, followed by one line for each file showing filename and
  82.      extent (plus other data) without the directory part. Default is
  83.      is to show the full pathname of each file, without a separate line
  84.      for directories. If the options exclude files by attributes it is
  85.      possible that a directory name containing matching files will be
  86.      displayed, even though the matching files will be excluded from
  87.      the display by their attributes.
  88.  
  89. Attribute specifiers:
  90.  
  91.   A = archive
  92.   D = directory
  93.   H = hidden
  94.   S = system
  95.   R = read only
  96.  
  97. May be used with:
  98.  
  99. /I - Include attributes. Use to specify D, H, or S, since these are
  100.      not normally displayed.
  101. /X - Exclude attributes. Do not display files with these attributes,
  102.      even if they would be selected otherwise. Use to exclude A and R.
  103. /R - Required attributes. Display only files having all of the
  104.      specified list of attributes. If any of H, S, or D are required,
  105.      they need not be specified with /I, since this is implied.
  106.      Combinations such as "/ID/RH" are also supported, in which case
  107.      both files and directories are shown only if they are hidden.
  108.  
  109. Options may be in upper or lower case and may be given either before or
  110. after the filename part, but not both.  (Filename, if given must be
  111. either the first or last argument, not in the middle.)  There should be
  112. no spaces within an option specifier.  Spaces may be placed between
  113. options, but are not required. The volume id attribute is not supported.
  114.  
  115. Examples:
  116.  
  117.   (1) FF *.BAT
  118.       Show all .BAT files on current disk.
  119.   (2) FF /XA *.*
  120.       Show all normal files on current drive which do not have the
  121.       archive attribute set.
  122.   (3) FF /RD A:\*
  123.          or
  124.       FF /RD A:*
  125.       Show all directories on the A drive.
  126.   (4) FF /RHS \UTIL\*.*
  127.       Show all files in the directory UTIL on the current drive which
  128.       are have hidden and system attributes.
  129.  
  130. Background:
  131.  
  132. This started out to be a simple replacement for the Norton Utilities
  133. FF.COM, which I do not know well but have seen on some other people's
  134. systems. Some of the shortcomings I saw may be my lack of knowledge of
  135. Norton's version, but I decided to write my own for the following
  136. reasons:
  137.  
  138. (1) I didn't have a licensed copy of the Norton Utilities for each
  139.     system where I wanted to use this function. Being a programmer
  140.     myself and knowing how much work goes into software I was not
  141.     willing to use pirat copies.
  142.  
  143. (2) I found I couldn't interrupt the Norton Utilities with CTRL-C except
  144.     when it found a file to display.  Often I would have found what I
  145.     wanted, but had to wait for the utility to finish its search before
  146.     regaining control.  (Setting BREAK ON would get around this, but I
  147.     do not normally run with BREAK ON.)  In this version, I test CTRL-C
  148.     at the start of each new directory, so even if it contains no
  149.     matching files execution is immediately stopped.  (When files are
  150.     found CTRL-C will work anyway, even the in middle of the directory
  151.     since console output is taking place.)
  152.  
  153. Other added features include:
  154.  
  155. (1) Searching a given subtree rather than the entire disk and optionally
  156.     restricting the depth of the search.
  157.  
  158. (2) Presenting file names in the form of DOS names, with directory
  159.     (optional) and a dot (and no blanks) between name and extent.
  160.     This is more convenient for some intended uses where the output
  161.     is redirected to a file and used to create .BAT files or read and
  162.     used by .BAT file replacements such as Personal Rexx.
  163.  
  164. (3) Selection on the basis of attributes and displaying attributes.
  165.  
  166. (4) Selection on the basis of file size (/S option.)
  167.  
  168. (5) Selection on the basis of file date and time (/Y option.)
  169.  
  170. Disclaimer: This program has been tested and is free from known defects,
  171. but the author assumes no responsibility for consequential damages
  172. arising from the use of this program.  Anyone discovering a defect is
  173. requested to contact the author.
  174.  
  175. Source language is Microsoft C, version 4.0.
  176. Small memory model is used.
  177.